home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue30 / clinic / TablesU.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1997-12-08  |  2.3 KB  |  99 lines

  1. unit TablesU;
  2.  
  3. interface
  4.  
  5. uses
  6.   WinProcs, WinTypes, Messages, SysUtils, Classes, Graphics, Controls,
  7.   Forms, Dialogs, Db, DBTables, Grids, DBGrids, StdCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     cmbAlias: TComboBox;
  12.     cmbTable: TComboBox;
  13.     DBGrid1: TDBGrid;
  14.     Table1: TTable;
  15.     DataSource1: TDataSource;
  16.     cmbIndexName: TComboBox;
  17.     cmbIndexFieldNames: TComboBox;
  18.     Label1: TLabel;
  19.     Label2: TLabel;
  20.     Label3: TLabel;
  21.     Label4: TLabel;
  22.     procedure FormCreate(Sender: TObject);
  23.     procedure cmbAliasChange(Sender: TObject);
  24.     procedure cmbTableChange(Sender: TObject);
  25.     procedure cmbIndexNameChange(Sender: TObject);
  26.     procedure cmbIndexFieldNamesChange(Sender: TObject);
  27.   private
  28.     { Private declarations }
  29.   public
  30.     { Public declarations }
  31.   end;
  32.  
  33. var
  34.   Form1: TForm1;
  35.  
  36. implementation
  37.  
  38. {$R *.DFM}
  39.  
  40. procedure TForm1.FormCreate(Sender: TObject);
  41. begin
  42.   Session.GetAliasNames(cmbAlias.Items);
  43. end;
  44.  
  45. procedure TForm1.cmbAliasChange(Sender: TObject);
  46. begin
  47.   cmbTable.Text := '';
  48.   cmbIndexFieldNames.Text := '';
  49.   cmbIndexName.Text := '';
  50.   Table1.Close;
  51.   Session.GetTableNames(cmbAlias.Text,
  52.     '*.*', True, False, cmbTable.Items)
  53. end;
  54.  
  55. procedure TForm1.cmbTableChange(Sender: TObject);
  56. var
  57.   I: Integer;
  58. begin
  59.   cmbIndexFieldNames.Text := '';
  60.   cmbIndexName.Text := '';
  61.   if cmbTable.Text <> '' then
  62.     with Table1 do
  63.     begin
  64.       DisableControls;
  65.       try
  66.         Close;
  67.         DatabaseName := cmbAlias.Text;
  68.         TableName := cmbTable.Text;
  69.         IndexName := '';
  70.         IndexFieldNames := '';
  71.         GetIndexNames(cmbIndexName.Items);
  72.         cmbIndexFieldNames.Clear;
  73.         IndexDefs.Update;
  74.         for I := 0 to IndexDefs.Count - 1 do
  75.           with IndexDefs[I] do
  76.             {if not (ixExpression in Options) then}
  77.             if Options * [ixExpression, ixDescending] = [] then
  78.               cmbIndexFieldNames.Items.Add(Fields);
  79.         Open
  80.       finally
  81.         EnableControls
  82.       end
  83.     end;
  84. end;
  85.  
  86. procedure TForm1.cmbIndexNameChange(Sender: TObject);
  87. begin
  88.   Table1.IndexName := cmbIndexName.Text;
  89.   cmbIndexFieldNames.Text := ''
  90. end;
  91.  
  92. procedure TForm1.cmbIndexFieldNamesChange(Sender: TObject);
  93. begin
  94.   Table1.IndexFieldNames := cmbIndexFieldNames.Text;
  95.   cmbIndexName.Text := ''
  96. end;
  97.  
  98. end.
  99.